An arrangement for carrying out a method of this kind is shown in FIG. 4. The arrangement shown comprises a control system in the form of a motor vehicle control apparatus 1 and a programming apparatus 2 which can be connected to the control apparatus as required. The program apparatus 2 is provided for programming the motor vehicle control apparatus 1.
The motor vehicle control apparatus 1 includes a control unit in the form of a central unit 11, a nonvolatile memory unit 12 (external ROM) and a volatile memory unit 13 (external RAM).
Motor vehicle components such as the motor, braking system and the like, which are controlled by the motor vehicle control apparatus 1, are not shown in FIG. 4.
The central unit 11 can be a microprocessor, a microcontroller or the like. In this example, the central unit 11 can be an 8-bit microcontroller having an internal nonvolatile memory (internal ROM) and an internal volatile memory (internal RAM), such as a component of the INTEL 8051 family.
The nonvolatile memory unit 12 can be an electrically erasable and programmable nonvolatile memory in the form of a flash EPROM.
The use of an electrically erasable and programmable memory has been shown to be advantageous because its content can be permanently changed at any time in a relatively simple manner which is of considerable significance, especially for errors in the stored data and programs, which were not detected initially, or in response to individual customer requests.
The use of a flash EPROM as an electrically erasable and programmable nonvolatile memory has acquired increasing significance because this memory has the combined attributes of a "normal" EPROM (high memory cell density in a small space) and of an EEPROM (electrical, and therefore simple and convenient erasure of the memory content).
The volatile memory unit 13 can, in the example, be a "normal" read-write memory (RAM).
A nonvolatile memory (ROM) is available to the central unit 11 and is comprised of the internal ROM of the central unit 11 and the external flash EPROM 12 (external ROM). A volatile memory (RAM) is available to the central unit 11 and is comprised of the internal RAM of the central control unit 11 and an external RAM 13. This is shown in FIG. 5.
Most 8-bit microcontrollers are so configured that data and programs can be stored and are stored in memory units separate from each other. As a rule, the ROM is used as a program memory and the RAM is used as a data memory.
Programs, which the central unit 11 has to execute, are also stored in the ROM in the example shown. The ROM, which is available to the central unit 11, is well suited for this purpose because it can be reprogrammed, at least partially, at any time and without too much difficulty as noted above.
However, the provision of a reprogrammable memory unit (especially a flash EPROM) imposes special requirements on the control system hardware and an appropriate drive therefor.
During reprogramming of the flash EPROM, the flash EPROM is not useable as a program memory which can be read out so that the program for executing the reprogramming must be stored at another location (that is, in the internal ROM of the central unit 11). This is necessary so that the reprogramming can be executed without difficulty.
The same applies for the case wherein the memory, which is addressable via the address line of the central unit, is too small. In this case, a memory can be used which can be partitioned into several memory banks. Each of the memory banks has a size which can be fully addressed via the address lines which are available. A switchover between the memory banks can be effected by utilizing output signals of the central unit (port output signals) which are originally not provided for addressing a memory.
A practical example of the above is the case now to be discussed. While the microcontroller used can address only 64 Kbyte memories via its 16 address lines, the required size of the provided external ROM according to FIG. 5 is 128 Kbyte. The 128 Kbyte are therefore subdivided into two 64 Kbyte memory banks between which a switchover can be selectively made as required.
If such a memory bank switchover is self-triggered by the just-activated memory bank of the external ROM, then this is problematic in that the next access of the central unit to the external ROM has a considerable probability of error. Thus, when the memory bank switchover is faster or slower than assumed, the access of the central unit to the external ROM can fail insofar that nonvalid or incorrect data (data of an incorrect memory bank) can be obtained.
To avoid the foregoing, it is therefore indicated to execute the memory bank switchover also from the internal ROM of the central unit, that is, to also store the corresponding program there.
The necessity to store specific programs or program parts in the internal ROM of the central unit has the consequence that the internal ROM is not only absolutely necessary but, under circumstances, must also have a considerable size.
It is therefore evident that a central unit 11 containing a relatively large internal ROM is more expensive than a central unit which either has no ROM or only a relatively small ROM. The reason for this is not only the hardware cost alone, but also the cost of producing the masks for programming the ROM at the manufacturer.
The foregoing notwithstanding, the central unit containing the ROM is immediately unusable when it becomes evident that a fault is located in the program stored therein or when it should become necessary to make expansions or modifications of the programs stored there. In such a case, not only the central unit storage supply is suddenly no longer useable and high expenditures must be effected for the revised mask manufacture; also, those motor vehicle control apparatus which have already been supplied must possibly be exchanged.